using System;
using System.Collections.Generic;

using PMServiceDesk.DataType;
using PMServiceDesk.DataAccess;
using PMServiceDesk.Utils.ManejoDatos;

namespace PMServiceDesk.BusinessLogic
{
    public class ComentarioPaqueteTrabajoLogic
    {
        #region Variables

        private ComentarioPaqueteTrabajoData _comentarioPaqueteTrabajoData;

        #endregion

        #region Constructores

        public ComentarioPaqueteTrabajoLogic()
        {
            _comentarioPaqueteTrabajoData = new ComentarioPaqueteTrabajoData();
        }

        #endregion

        #region Metodos

        public ComentarioPaqueteTrabajoType CargarPorId(string id)
        {
            _comentarioPaqueteTrabajoData.FiltrarPorId(id);

            return _comentarioPaqueteTrabajoData.Cargar();
        }

        public void Grabar(ComentarioPaqueteTrabajoType comentarioPaqueteTrabajo)
        {
            _comentarioPaqueteTrabajoData.Grabar(comentarioPaqueteTrabajo);
        }

        public void Eliminar(string id)
        {
            _comentarioPaqueteTrabajoData.Eliminar(id);
        }

        public List<ComentarioPaqueteTrabajoType> CargarExplorador(string paqueteTrabajoId)
        {
            if(paqueteTrabajoId != "") _comentarioPaqueteTrabajoData.FiltrarPorPaqueteTrabajoId(paqueteTrabajoId);

            return _comentarioPaqueteTrabajoData.CargarListaVista();
        }

        public List<ComentarioPaqueteTrabajoType> CargarExploradorPaginado(ComentarioPaqueteTrabajoType registroBusqueda, int paginaActual = 0, int cantidadMostrar = 0, string orderBy = "")
        {
            _comentarioPaqueteTrabajoData.FiltrarPorPaqueteTrabajoId(registroBusqueda.PaqueteTrabajoId);

            if (registroBusqueda.EstadoPaqueteTrabajo != "") _comentarioPaqueteTrabajoData.FiltrarPorEstadoPaqueteTrabajo(registroBusqueda.EstadoPaqueteTrabajo);
            if (registroBusqueda.UsuarioRegistro != "") _comentarioPaqueteTrabajoData.FiltrarPorUsuarioRegistro(registroBusqueda.UsuarioRegistro);
            if (registroBusqueda.FechaRegistro_Format != "") _comentarioPaqueteTrabajoData.FiltrarPorFechaRegistroExacta(ConvertFormat.Char_To_Date(registroBusqueda.FechaRegistro_Format));

            return _comentarioPaqueteTrabajoData.CargarListaVista(paginaActual, cantidadMostrar, orderBy);
        }
        #endregion
    }
}
